Ten projekt składa się z dwóch części: 1. Historyczne wyniki polskiej reprezentacji w Pucharze Świata, 2. Jak dalego trzeba skoczyć aby wygrać zawody? - czyli analiza długości skoków w zawodach Pucharu Świata.
Pierwsza część skupia się na historycznej analizie wyników polskiej reprezentacji w skokach narciarskich w Pucharze Świata w latach 1994-2025. Obejmuje więc zarówno “Erę Małysza” jak i lata późniejsze, aż do teraźniejszości.
W drugiej częśći projektu staram się pokazać potencjał drzemiący w
stworzonym przeze mnie zbiorze danych, zawierającym szczegółowe
informacje o przeszło 2 i pół tysiącach skoków narciarskich.
Analizowane są głównie długości skoków w różnych zawodach Pucharu Świata
na przestrzeni kilku sezonów. Na końcu tej części staram się
odpowiedzieć na pytanie: “jak daleko należy skoczyć w konkursie aby
zająć 1 (lub inne) miejsce?”.
Ostatnimi czasy wśród kibiców polskiej reprezentacji w skokach narciarskich panuje pesymizm i nostalgia do czasów nieodwracalnie minionych. Osobiście zawsze jestem zwolennikiem merytorycznej krytyki i prób znalezienia optymalniejszych rozwiązań. Nie jestem w stanie jednak zrozumieć hejtu, który wylewa się obecnie na sportowców, którzy całe swoje życia poświęcają tej dyscyplinie i robią co mogą, aby osiągnąć jak nalepsze wyniki.
Wiele opinii kibiców nie jest podparta żadnymi analizami, dlatego postanowiłem zająć się tym tematem i odpowiedzieć na pytanie - “Czy z polskimi skokami faktycznie jest aż tak źle?”
W tym celu zescrapowałem ze strony skokinarciarskie.pl zarówno historyryczne klasyfikacje generalne Pucharu Świata poczynając od 1994 roku, jak i klasyfikację obecnie trwającego cyklu.
Analizując poniższe wykresy warto pamiętać o tym, że obecnie liczba
konkursów wchodzących w skład Pucharu Świata zwiększyła się w stosunku
do tego, co było dawniej. W związku z tym zwiększyła się też pula
punktów do zdobycia. Z drugiej jednak strony pojawiają się liczne głosy,
że poziom PŚ stale rośnie, a więc punkty są coraz trudniejsze do
zdobycia. Moja analiza nie uwzględnia tych czynników.
Na wykresie wyraźnie widać wybuch formy Adama Małysza w sezonie 2000/01, który zapoczątkował Małyszomanię.
Widać też, że “Złotą Erą” polskich skoków był okres 2016-2023 i że obecnie faktycznie jest gorzej niż w tych latach, lecz wcale nie najgorzej w kontekście całego rozważanego okresu.
(Należy pamiętać, że sezon 2024/2025 wciąż trwa i liczba zdobytych w
nim punktów jeszcze wzrośnie).
Na wykresie, począwszy od sezonu 1999/2000 zaznaczyłem pierwszych trenerów kadry A w danych okresach.
Widać jak przejęcie kadry przez Tajnera zbiegło się z przełomem w wynikach Adama Małysza. Widać również progres wielu polskich skoczków po przejęciu kadry przez Horngachera.
Ciekawą zależnością jest też to, że często po zmianie trenera kadra
zaczyna osiągać lepsze wyniki. Jest tak w sezonach: 99/00, 04/05, 16/17,
22/23. Widzę dwa prawdopodobne wyjaśnienia tego zjawiska: 1. Nowo
zatrudniony trener wprowadza nowe metody treningowe i “powiew świeżości”
przez co skoczkowie zaczynają lepiej skakać 2. Trenera zwalnia się po
wyjątkowo nieudanym sezonie. Oczywiście możliwe jest też to, że ta
zależność jest dziełem przypadku.
Na tym wykresie czytelnie widać historyczne rezultaty poszczególnych skoczków. Na jego podstawie można spróbować rozstrzygnąć odwieczny spór i zaryzykować stwierdzenie, że jeśli chodzi o występy w PŚ to kariera Adama Małysza była bardziej okazała niż Kamila Stocha. Oczywiście nie uwzględniamy tutaj innych sukcesów skoczka z Zębu takich jak złota igrzysk olimpijskich - czegoś, czym Małysz nie może się pochwalić. Pamiętajmy też, że Stoch nie powiedział jeszcze ostatniego słowa ;)
Druga część projektu bazuje na autorskim zbiorze danych, o którym opowiem więcej za chwilę. Przedmiotem analizy są długości skoków w konkursach Pucharu Świata. Zacznę od wytłumaczenia o co chodzi w skokach narciarskich, a na końcu postaram się odpowiedzieć na pytanie: “jak daleko należy skoczyć w konkursie aby zająć 1 (lub inne) miejsce?”.
Skoki narciarskie to piękny sport, który generuje wiele konkretnych danych. Dane te są jednak dość trudno dostępne - w internecie brakuje zbiorów danych gotowych do prowadzenia analiz. Danych w bardzo mało przystępnej formie (np. pdfy z raportami z zawodów) trzeba szukać na stronach takich jak oficjana strona fisu.
Prawdopodobnie z tego powodu brakuje ciekwaych analiz dotyczących tej tematyki. Z ciekawych rzeczy, które udało mi się znaleźć to ta analiza Alexandra Levakova: analiza 1. I ten zbiór danych: kaggle.
Żadna z tych rzeczy nie dostaczyła jednak odpowiedzi na dręczące mnie
pytania, więc musiałem przeprowadzić własną analizę.
W związku z brakiem interesujących mnie danych w łatwo dostępnej formie stworzyłem własne rozwiązanie do ich pozyskania. Za pomocą darmowego narzędzia Tabula przekonwertowałem fisowskie raporty z zawodów indywidualnych do plików csv. Następnie napisałem w R skrypt do czyszczenia tak otrzymanych danych. W ten sposób powstał prawdopodobnie największy i najkompletniejszy zbiór danych zawierających informacje o skokach jaki jest dostępny w sieci.
Obecnie zbiór danych zawiera informacje o skokach z 44 konkursów Pucharu Świata z 12 skoczni, które odbyły się w ciągu 3 sezonów.
O każdym z ponad 2 i pół tysiąca skoków dostępna jest pełna informacja w tym: imię zawodnika, odległość, noty (od każdego sędziego i sumarycznie), informacje o wietrze i belce i wiele, wiele więcej.
Zbiór łatwo można poszerzyć o kolejne rekordy za pomocą gotowych
narzędzi: Tabula i przygotowanego przeze mnie skryptu R.
Przejdźmy do metirum. Skoki narciarskie to dyscyplina sportowa, w której należy skoczyć na nartach jak najdalej. Oprócz odległości otrzymuje się punkty za styl, oraz rekompensatę za wiatr. Zazwyczaj konkurs indywidualny skoków narciarskich w ramach Pucharu Świata składa się z dwóch serii. W pierwszej skacze 50 zawodników, w drugiej 30 najlepszych z pierwszej serii. Ostateczna nota jest sumą punktów z obu skoków.
Skocznia narciarska, na której rozgrywaja się zawody składa się z rozbiegu, miejsca wybicia i zeskoku- strefy lądowania.
Strefa lądowania ma dwa najważniejsze parametry - punkt K, względem którego liczy się punkty za odległość i HS - rozmiar skoczni, za którym zeskok gwałtownie się wypłaszcza i dalsze skoki są uznawane za niebezpieczne.
Budowę skoczni przedstawia poniższa grafika z
wikipedii.
Przed dalszą analizą konieczne jest zapoznanie się z rozkładem długości skoków w konkursach PŚ.
Oto histogram przedstawiający rozkład skoków w ramach przykładowego
konkursu PŚ (z obu serii konkursowych):
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## [1] "/home/kshys13k/Desktop/Studia/rok2/R/ski_jumping"
## New names:
## • `` -> `...1`
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
## dat <- vroom(...)
## problems(dat)
## Rows: 2642 Columns: 29
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (7): name, country, birthday, gate, gate_points, hill_code, full_name
## dbl (22): ...1, starting_number, speed, distance, distance_points, mark_A, m...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
##
## Shapiro-Wilk normality test
##
## data: df$distance
## W = 0.9909, p-value = 0.8735
## Linki
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.